/**
 * 
 */
package be.gwi.alfresco.run.facade;

import java.util.List;

import be.gwi.alfresco.run.exception.FacadeException;
import be.gwi.alfresco.run.model.Run;
import be.gwi.alfresco.run.model.RunType;
import be.gwi.alfresco.run.model.Runner;

/**
 * Run Facade will access to Alfresco API to get/add/update runs
 * 
 * @author gabriel.wilems@gmail.com
 * 
 * @version 1.0
 * @since 1.0
 */
public interface RunFacade {

    /**
     * Add run to runner history
     * 
     * @param run
     * @param runner
     */
    void addRunToRunnerHistory(Run run, Runner runner) throws FacadeException;

    /**
     * Get runner history for the given year
     * 
     * @param runner
     * @param year
     * @return
     * @throws FacadeException
     */
    List<Run> getHistory(Runner runner, String year) throws FacadeException;

    /**
     * Get runner history for the runType
     * 
     * @param runner
     * @param runType
     * @return
     * @throws FacadeException
     */
    List<Run> getHistoryByRunType(Runner runner, RunType runType) throws FacadeException;
}
